package com.europe.business.europebusiness.ui.utils;

import android.content.Context;
import android.os.Build;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

public class Utils {
    public static String getSystemLanguage(Context context){
        Locale locale;
        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N){
            locale = context.getResources().getConfiguration().getLocales().get(0);
        }else{
            locale = context.getResources().getConfiguration().locale;
        }
        String lan = locale.getLanguage();
        String lanuage;
        if(lan.equals("zh")){
            lanuage = "zh";
        }else{
            lanuage = "en";
        }
        return lanuage;
    }

    public static <T> T mapToObject(Map<String, Object> map, Class<T> beanClass) throws Exception {
        if (map == null)
            return null;

        T obj = beanClass.newInstance();

        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            int mod = field.getModifiers();
            if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                continue;
            }

            field.setAccessible(true);
            field.set(obj, map.get(field.getName()));
        }

        return obj;
    }

    public static Map<String, Object> objectToMap(Object obj) throws Exception {
        if (obj == null) {
            return null;
        }

        Map<String, Object> map = new HashMap<String, Object>();

        Field[] declaredFields = obj.getClass().getDeclaredFields();
        for (Field field : declaredFields) {
            field.setAccessible(true);
            map.put(field.getName(), field.get(obj));
        }

        return map;
    }

}
